package ar.com.larreta.comunes;

import java.util.Collection;
import java.util.Iterator;

import ar.com.larreta.excepciones.Excepcion;

public class DescriptorDeObjetoCollection extends DescriptorDeObjeto {

	@Override
	public Boolean esCollection() {
		return Boolean.TRUE;
	}

	public DescriptorDeObjetoCollection(Object origen, Transformador transformador) {
		super(origen, transformador);
	}
	
	public void copiar(DescriptorDeObjeto descriptorDestino) {
		try {
			
			Collection colOrigen = (Collection) this.getOrigen();
			Collection colDestino = (Collection) descriptorDestino.getOrigen();
			
			Iterator it = colOrigen.iterator();
			while (it.hasNext()) {
				Object viejo = it.next();
				Object nuevo = transformador.getObjetoNuevo(viejo);
				if (nuevo!=null) {
					colDestino.add(nuevo);
				} else {
					logger.debug("No se obtuvo un objeto transformado para:" + viejo.getClass().getName());
				}
			}

		} catch (Exception e) {
			logger.error(Excepcion.getStackTrace(e));
		}
	}

}
